<?php


namespace app\common\lib;


class ClassArr
{
    public static function smsClassStat() {
        return [
            'ali' => "app\common\lib\sms\AliSms",
            'jd' => "app\common\lib\sms\JdSms",
            'baidu' => "app\common\lib\sms\BaiduSms"
        ];
    }
    public static function initClass($type, $class, $params=[], $needInstance = false) {
        // 如果我们工厂模式调用的方法是静态的 那么我们这个地方返回类库 AliSms
        // 如果不是静态的 我们就需要返回对象
        if (!array_key_exists($type,$class)){
            return false;
        }
        $className = $class[$type];
        // new ReflectionClass('AliSms') => 建立A反射类
        // -> newInstanceArgs($args) => 相当于实例化A对象
        return  $needInstance == true ? (new \ReflectionClass($className))->newInstanceArgs($params) : $className;
    }
}